package com.zyf.chapter02.structure.bridge;

import com.zyf.chapter01.principle.SOLID.OCP.NotificationEmergencyLevel;
import com.zyf.chapter01.principle.SOLID.OCP.handler.ErrorAlertHandler;
import com.zyf.chapter02.structure.bridge.sender.MsgSender;

import java.util.List;

/**
 * 发送告警信息
 * <p> 重构后,抽象，不依赖于实现，它们可以独立变化。
 * 通过组合的方式，让多个维多可以独立扩展（MsgSender，Notification）
 * 错误处理类请参照 {@link ErrorAlertHandler}
 * @author yifeng
 * @see ErrorAlertHandler
 */
public abstract class Notification {

    protected MsgSender msgSender;

    public Notification(MsgSender msgSender) {
        this.msgSender = msgSender;
    }


    /**
     * 不参与实现
     * @param message 通知信息
     */
    public void notify(String message) {
        msgSender.send(message);
    }
}
